

package proyectodatos1verano.modelo;

public class Pila<T> {
    
	   NodoSimple<T> primero = null;

	public Pila ()
	{}

	public boolean isEmpty()
	{
		return primero == null;
	}

	public void push(T o)
	{
		NodoSimple<T> nuevo = new NodoSimple<T>(o);
		nuevo.setNextNode(primero);
		primero = nuevo;
	}

	public Object pop()
	{
		if (!isEmpty()){
		NodoSimple<T> act = primero;
		primero = primero.getNextNode();
		return act.getData();}
		return null;
	}

	public void append (Pila stack)
	{
            if(stack!=null){
		if (stack.isEmpty()){
			return;
                }else{
                    NodoSimple<T> act = stack.getTop();
                    while (act.getNextNode() != null){
                        act=act.getNextNode();
                    }
                    act.setNextNode(this.primero);
                    this.primero = stack.getTop();
                }
            }
	}

	public NodoSimple<T> getTop ()
	{
		return primero;
	}
}
